Understanding when software applications are being used can be important to operating systems and management applications that run on or interact with a personal computer (“PC”). For example, knowing application usage can enable effective management of applications, track license usage, place restrictions on time or permissions, and identify authorized use of applications. In addition, PC users often wish to disable or remove unused or infrequently used applications in order to optimize system performance or free up resources.
Reliably and accurately detecting application usage can be difficult because not all applications that may be running on the PC may actually be used. In addition, there are typically several different ways in which a user may interact with an application. For example, one application may support user interaction through a user interface (“UI”) window displayed on the PC's desktop, while another application may be accessed via an icon in the desktop taskbar notification area (often referred to as the “system tray” which is loaded by SysTray.exe in Microsoft Windows® operating system environments). In some cases, an application is used indirectly by a user by providing services to other applications or by being used within a web browser.
Unfortunately, while providing satisfactory performance in some scenarios, many existing software application usage detection techniques are often unreliable and inaccurately detect application usage in some cases. For example, existing techniques may apply heuristics to match start menu program entries with the list of installed programs. They will then simply track how often a particular program is launched from the start menu. Such techniques disregard the diversity in usage pattern of applications and apply a technique that is only relevant for a small subset of all the applications. These techniques also fail to recognize that not all components of an application are correlated with active use of the application by the computer user. As a result, such existing techniques may report that an application is used frequently when in fact it is not, or may miss identification of frequently used applications.
This Background is provided to introduce a brief context for the Summary and Detailed Description that follow. This Background is not intended to be an aid in determining the scope of the claimed subject matter nor be viewed as limiting the claimed subject matter to implementations that solve any or all of the disadvantages or problems presented above.